home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------------
- ;
- ; File : AudioPort.i
- ;
- ; Author : Stéphane TAVENARD
- ;
- ; $VER: AudioPort.i 1.3 (22/07/1995)
- ;
- ; (C) Copyright 1995-1995 Stéphane TAVENARD
- ; All Rights Reserved
- ;
- ; #Rev| Date | Comment
- ; ----|----------|--------------------------------------------------------
- ; 0 |05/06/1995| Initial revision
- ; 1 |06/06/1995| First release (no more C code) ST
- ; 2 |19/06/1995| Added FreeSignal in DeletePort ST
- ; 3 |23/06/1995| Aminet release ST
- ; 4 |09/07/1995| Use now ex_EClockFrequency for period calculation ST
- ; 5 |22/07/1995| Added volume control for 16-bit samples ST
- ;
- ; ------------------------------------------------------------------------
- ;
- ; Audio port definitions
- ;
- ;------------------------------------------------------------------------------
-
- IFND AUDIOPORT_I
- AUDIOPORT_I set 1
-
- ; AU port structure
-
- ; Flags (hp_flags)
-
- ; Flags to set at open
- AUFB_STEREO equ 0
- AUFB_16BITS equ 1
- AUFB_MIXING equ 6 ; #5
- ; Other flags
- AUFB_FILTER equ 2
- AUFB_VOL equ 3
- AUFB_FREQ equ 4
- AUFB_NOWAIT equ 5
- ; Masks
- AUF_STEREO equ (1<<AUFB_STEREO)
- AUF_16BITS equ (1<<AUFB_16BITS)
- AUF_MIXING equ (1<<AUFB_MIXING)
- AUF_FILTER equ (1<<AUFB_FILTER)
- AUF_VOL equ (1<<AUFB_VOL)
- AUF_FREQ equ (1<<AUFB_FREQ)
- AUF_NOWAIT equ (1<<AUFB_NOWAIT)
-
-
- rsreset
- au_hard_port rs.l 1 ; hard_port ptr
- au_flags rs.b 1 ; UBYTE ; Various flags (AUFB_xxx)
- au_signal rs.b 1 ; UBYTE ; Signal number for Wait()
- au_command rs.b 1 ; UBYTE ; Audio command (AUC_xxx)
- au_filter_on rs.b 1 ; UBYTE ; 0 if filter off
- au_frequency rs.l 1 ; ULONG ; Input samples frequency
- au_l_vol rs.w 1 ; UWORD ; Left volume (0..64)
- au_r_vol rs.w 1 ; UWORD ; Right volume (0..64)
- au_l_wave rs.l 1 ; WORD * ; WARNING ! @ can be changed
- au_r_wave rs.l 1 ; WORD * ; each time you use AUC_WRITE
- au_wave_length rs.l 1 ; ULONG ; Wave length (in samples)
- au_mixing_frequency rs.l 1 ; ULONG ; Used if AUFB_MIXING set
- au_error rs.l 1 ; LONG ; 0 if ok
- au_sizeof rs.l 0
-
- ; Commands
-
- AUC_CONTROL equ 0
- AUC_WRITE equ 1
- AUC_STOP equ 2
- AUC_CONTINUE equ 3
-
- ; Hard port structure
-
- rsreset
- hp_task rs.l 1
- hp_signal rs.l 1 ; Signal bit for audio process
- hp_wave_max_length rs.l 1 ; Max length of one USER sample buffer
- hp_input_l_wave rs.l 1 ; USER Left sample buffer #5
- hp_input_r_wave rs.l 1 ; USER Right sample buffer #5
- hp_active_wave rs.l 1 ; Actual audio buffer playing
- hp_input_frequency rs.l 1 ; USER input sample frequency #5
- hp_output_frequency rs.l 1 ; Output audio frequency #5
- hp_current_period rs.l 1 ; Audio hardware current period value #5
- hp_next_period rs.l 1 ; Audio hardware next period value #5
- hp_wave_period rs.l 2 ; Audio hardware waves period value #5
- hp_mixing_max_size rs.l 1 ; Mixing buffer max size (bytes) #5
- hp_mixing_length rs.l 1 ; Mixing buffer current length #5
- hp_mixing_buffer rs.l 1 ; Mixing buffer #5
- hp_wave_max_size rs.l 2 ; Audio buffers max sizes (bytes) #5
- hp_wave_length rs.l 2 ; Audio buffers current lengths
- hp_l_wave_h rs.l 2 ; Audio 8-bit buffers Left (high bits)
- hp_l_wave_l rs.l 2 ; Audio 8-bit buffers Left (low bits)
- hp_r_wave_h rs.l 2 ; Audio 8-bit buffers Right (high bits)
- hp_r_wave_l rs.l 2 ; Audio 8-bit buffers Right (low bits)
- hp_flags rs.b 1 ; Current flags
- hp_playing rs.b 1 ; set if playing
- hp_end_of_play rs.b 1 ; set if last buffer to play
- hp_dma_loaded rs.b 1 ; set if Audio dma's activared
- hp_channels_bitmap rs.l 1 ; Bitmap of Hardware audio channels used
- hp_l_vol rs.w 1 ; Left volume (0..64)
- hp_r_vol rs.w 1 ; Right volume (0..64)
- hp_l_channel_h rs.w 1 ; Hardware audio channel Left (high bits)
- hp_l_channel_l rs.w 1 ; Hardware audio channel Left (low bits)
- hp_r_channel_h rs.w 1 ; Hardware audio channel Right (high bits)
- hp_r_channel_l rs.w 1 ; Hardware audio channel Right (low bits)
- hp_audena rs.w 1 ; Hardware register AUDENA save bits
- hp_adkcon rs.w 1 ; Hardware register ADKCON save bits
- hp_intdis rs.w 1 ; Interrupt bits to disable
- hp_intena rs.w 1 ; Hardware register INTENA save bits
- hp_intnum rs.l 1 ; Interrupt number used for audio process
- hp_port rs.l 1 ; Audio device port address
- hp_old_interrupt rs.l 1 ; Old interrupt handler
- hp_audio_interrupt rs.b IS_SIZE ; = Interrupt size
- hp_sizeof rs.l 0
-
- ; Flags (hp_flags)
-
- AU_B_STEREO equ 0
- AU_B_16BITS equ 1
- AU_B_NOSPLIT equ 2
- AU_B_FILTER equ 3
-
- ENDC ; AUDIOPORT_I
-